package pe.com.bbva.mantenimiento.bo;

import java.util.List;

import pe.com.bbva.configuracion.domain.ConfArchivo;
import pe.com.bbva.configuracion.domain.TipoArchivo;
import pe.com.bbva.mantenimiento.domain.Tabla;
import pe.com.stefanini.core.bo.Grid;
import pe.com.stefanini.core.exceptions.BOException;
import pe.com.stefanini.core.exceptions.DAOException;

@SuppressWarnings("rawtypes")
public interface TablaBO {
	public boolean validate(Tabla tabla) throws BOException, DAOException;
	public Tabla findById(Long id) throws BOException, DAOException;
	public List<Tabla> findDetalleTabla(Long idTabla) throws BOException, DAOException;
	public List<Tabla> findAllTabla() throws BOException, DAOException;
	public Tabla findTablaById(Long id) throws BOException, DAOException;
	public Tabla findTablaByCodigo(String codigo) throws BOException, DAOException;
	public List<Tabla> findTablas(Tabla tabla) throws BOException, DAOException;
	public Tabla findDescripcionTabla(Long id, Long idPadre) throws BOException, DAOException;
	public List<Tabla> findTablasPadre()throws BOException, DAOException;
	public List<Tabla> findTablasPadre(Tabla tabla)throws BOException, DAOException;
    public void save(Tabla tabla) throws BOException, DAOException;
	public void deleteLog(Class tabla, Long id) throws BOException;
	public List<Tabla> findTablasPadreRecur()throws BOException;
	public Grid<Tabla> findToGrid(Tabla tabla,String order,int page,int rows) 
	throws BOException,DAOException;
	public Grid<Tabla> findToGridIncidencia(Tabla tabla,String order,int page,int rows) 
	throws BOException,DAOException;
//	public Grid<TipoArchivo> findToGridArchivo(List<ConfArchivo> archivos, String order,int page,int rows) 
//	throws BOException,DAOException;
	public List<Tabla> findTablasByValor(String tipoArchivo, String codigoPadre)throws BOException, DAOException;
	public List findTablasOrderByOrdenado(Long idValMeses)throws BOException;
	public List<Tabla> findDetalleTablaByCodigo(String codigoPadre)throws BOException, DAOException;
	public Tabla findDetalleTablaByValuePadre(String string,String codigoTipoReporte)throws BOException, DAOException;
	public List<Tabla> findTipoCorreo()throws BOException, DAOException;
	public List<Tabla> findEstadoArchivo()throws BOException, DAOException;
	public Grid<Tabla> findDetalleToGrid(Tabla tabla,
			String order, int page, int rows) throws BOException, DAOException;
	public void save(Tabla tabla, String codigoAntiguo) throws BOException, DAOException;
	public List<Tabla> findArchivoCarga() throws BOException, DAOException;
	public List<Tabla> findHijos(Long idPadre)throws BOException, DAOException;
}
